www.gusucode.com > OFDM系统 编码模块的作用是为了提高系统的可靠性,降低接收端的误码率. 数字调制模块可以提高信道的频谱利用率 > OFDM系统 编码模块的作用是为了提高系统的可靠性,降低接收端的误码率. 数字调制模块可以提高信道的频谱利用率/OFDM仿真(matlab)完整可运行/OFDM通信系统/time_syn.m

    %************************beginning of file*****************************
%time_syn.m
%系统的定时同步
function   time_syn(datai,dataq)
%通过前导结构的两个训练帧的延时自相关算法和本地
%互相关检测可以实现精确度非常高的定时同步。

global seq_num  
global dingshi  
global m_syn 

if seq_num==1
 for nc=1:length(datai)-64 %计算相关值 
    for m=1:32
        m1_syn(m)=(datai(nc+m-1)+j*dataq(nc+m-1))*conj(datai(nc+m-1+16)+j*dataq(nc+m-1+16));
    end
    m2_syn(nc)=sum(m1_syn);
    m_syn(nc)=abs(m2_syn(nc));   %自相关自相关判决函数
 end

%  figure
%  plot(m_syn)
%  xlabel('采样点索引号')
%  ylabel('自相关判决函数')
elseif seq_num==2
 local_seq=[  -1.0000 + 1.0000i   1.0000 - 1.0000i   1.0000 - 1.0000i   1.0000 - 1.0000i  1.0000 - 1.0000i   1.0000 - 1.0000i   1.0000 - 1.0000i   1.0000 - 1.0000i  -1.0000 - 1.0000i  -1.0000 - 1.0000i   1.0000 - 1.0000i   1.0000 - 1.0000i  1.0000 + 1.0000i  -1.0000 + 1.0000i  -1.0000 + 1.0000i  -1.0000 + 1.0000i  -1.0000 - 1.0000i  -1.0000 - 1.0000i  -1.0000 - 1.0000i  -1.0000 + 1.0000i  -1.0000 + 1.0000i   1.0000 - 1.0000i   1.0000 - 1.0000i   1.0000 - 1.0000i   1.0000 + 1.0000i   1.0000 + 1.0000i   1.0000 + 1.0000i   1.0000 + 1.0000i  1.0000 + 1.0000i  -1.0000 + 1.0000i  -1.0000 - 1.0000i   1.0000 - 1.0000i   1.0000 - 1.0000i   1.0000 - 1.0000i  -1.0000 + 1.0000i  -1.0000 + 1.0000i   1.0000 + 1.0000i   1.0000 + 1.0000i  -1.0000 - 1.0000i  -1.0000 + 1.0000i  -1.0000 + 1.0000i   1.0000 + 1.0000i   1.0000 + 1.0000i   1.0000 + 1.0000i   1.0000 + 1.0000i   1.0000 + 1.0000i   1.0000 - 1.0000i  -1.0000 + 1.0000i  -1.0000 + 1.0000i   1.0000 + 1.0000i  -1.0000 + 1.0000i  -1.0000 - 1.0000i   1.0000 - 1.0000i   1.0000 + 1.0000i   1.0000 + 1.0000i   1.0000 + 1.0000i  -1.0000 + 1.0000i   1.0000 + 1.0000i   1.0000 + 1.0000i   1.0000 - 1.0000i  -1.0000 - 1.0000i  -1.0000 - 1.0000i  -1.0000 - 1.0000i  -1.0000 - 1.0000i  -1.0000 - 1.0000i  -1.0000 - 1.0000i   1.0000 + 1.0000i  -1.0000 + 1.0000i  -1.0000 - 1.0000i   1.0000 - 1.0000i   1.0000 - 1.0000i   1.0000 - 1.0000i  -1.0000 - 1.0000i  -1.0000 - 1.0000i  -1.0000 - 1.0000i   1.0000 - 1.0000i  1.0000 + 1.0000i   1.0000 + 1.0000i   1.0000 - 1.0000i   1.0000 - 1.0000i   1.0000 - 1.0000i   1.0000 - 1.0000i   1.0000 + 1.0000i   1.0000 + 1.0000i   1.0000 + 1.0000i  -1.0000 + 1.0000i  -1.0000 + 1.0000i  -1.0000 + 1.0000i  -1.0000 + 1.0000i   1.0000 + 1.0000i   1.0000 + 1.0000i   1.0000 - 1.0000i   1.0000 - 1.0000i   1.0000 - 1.0000i  -1.0000 - 1.0000i  -1.0000 + 1.0000i  -1.0000 + 1.0000i  -1.0000 + 1.0000i  -1.0000 - 1.0000i  -1.0000 - 1.0000i  -1.0000 - 1.0000i  -1.0000 + 1.0000i   1.0000 + 1.0000i   1.0000 + 1.0000i  -1.0000 + 1.0000i  -1.0000 - 1.0000i  -1.0000 - 1.0000i  -1.0000 - 1.0000i  -1.0000 + 1.0000i  -1.0000 + 1.0000i  -1.0000 + 1.0000i  -1.0000 + 1.0000i  -1.0000 + 1.0000i  -1.0000 - 1.0000i  -1.0000 - 1.0000i   1.0000 - 1.0000i  1.0000 - 1.0000i  -1.0000 + 1.0000i  -1.0000 + 1.0000i  -1.0000 + 1.0000i  -1.0000 + 1.0000i  -1.0000 + 1.0000i  -1.0000 + 1.0000i  -1.0000 + 1.0000i  -1.0000 + 1.0000i  -1.0000 + 1.0000i  -1.0000 + 1.0000i  -1.0000 + 1.0000i  ];

 for nn=1:length(datai)-128  %计算相关值 (输入信号与本地信号互相关)
    for m=1:100
        t1_syn(m)=(datai(nn+m-1)+j*dataq(nn+m-1))*conj(local_seq(m));
    end
    lolol(nn)=sum(t1_syn);
    t_syn(nn)=abs(sum(t1_syn)); %输入信号与本地信号互相关判决函数
 end

 for ni=1:length(t_syn)
    if t_syn(ni)>60
        dingshi=find(t_syn(ni:ni+6)==max(t_syn(ni:ni+6)))+ni-1;
        break
    end
 end
% figure
% plot(t_syn) 
% xlabel('采样点索引号')
% ylabel('互相关判决函数')
end
% ************************end of file***********************************